<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-jni-manual.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:25:46 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Generator" content="iWeb 3.0.4"/>
<meta name="iWeb-Build" content="local-build-20170103"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta name="viewport" content="width=770"/>
<title>wolfSSL - Docs | wolfSSL JNI Manual</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Docs-wolfssl-jni-manual_files/Docs-wolfssl-jni-manual.css"/>
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Docs-wolfssl-jni-manual_files/Docs-wolfssl-jni-manualIE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Scripts/iWebSite.js"></script>
<script type="text/javascript" src="Docs-wolfssl-jni-manual_files/Docs-wolfssl-jni-manual.js"></script>
<meta name="description" content="wolfSSL JNI Manual explains how to build and use the wolfSSL JNI wrapper giving Java applications support for current SSL/TLS standards up to TLS 1.2 and DTLS 1.2."/><meta name="keywords" content="java ssl, jni ssl, cyassl jni, openssl jni, java dtls, embedded ssl, ssl library, embedded web server, openssl alternative, openssl replacement, cyassl, stream ciphers ssl, aes-ni ssl, dtls, mysql ssl, portable ssl, ssl portable, portable tls, small openssl, smart grid, connected home, ecc, lightweight ssl, suite b, encryption security software, ssl inspection"/><meta name="robots" content="follow,index"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','../../www.google-analytics.com/analytics.js','ga');ga('create','UA-64826966-1','auto');ga('send','pageview');</script>
 
<script>//<![CDATA[
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("../../assets.zendesk.com/embeddable_framework/main.js","wolfssl.zendesk.com");
//]]></script>
  </head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();">
<div style="text-align: center; ">
<div style="margin-bottom: 20px; margin-left: auto; margin-right: auto; margin-top: 20px; overflow: hidden; position: relative; word-wrap: break-word;  background: rgb(255, 255, 255); text-align: left; width: 770px; " id="body_content">
<div style="float: left; margin-left: 0px; position: relative; width: 770px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer"> </div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 770px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
<div style="margin-left: 0px; position: relative; width: 770px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id1" style="height: 38px; left: 375px; position: absolute; top: 157px; width: 361px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_361_38" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style">wolfSSL JNI Manual</p>
</div>
</div>
</div>
<div id="id2" style="height: 3168px; left: 35px; position: absolute; top: 246px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_3168" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_1">Introduction<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">The wolfSSL JNI package provides a Java interface to the wolfSSL SSL/TLS library, providing Java applications with SSL/TLS support up to the current TLS 1.2 and DTLS 1.2 standards.  The interface is provided through the use of JNI and standard Java practices.  In addition to the interface, the package provides an example client and server, written in Java, which utilize the interface to make an SSL/TLS connection.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">As this interface wraps around the native wolfSSL (wolfSSL) library, this document should be used together with the <a title="Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">wolfSSL Manual</a>.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">Table of Contents<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="1">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">1.</span><span style="width: 14px; " class="inline-block"></span>Getting wolfSSL JNI Source Code<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="2">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">2.</span><span style="width: 14px; " class="inline-block"></span>Requirements<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="3">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">3.</span><span style="width: 14px; " class="inline-block"></span>Package Design<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="4">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">4.</span><span style="width: 14px; " class="inline-block"></span>Building<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="5">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">5.</span><span style="width: 14px; " class="inline-block"></span>Cleanup<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="6">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">6.</span><span style="width: 14px; " class="inline-block"></span>Examples<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="7">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">7.</span><span style="width: 14px; " class="inline-block"></span>API Documentation<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="8">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">8.</span><span style="width: 14px; " class="inline-block"></span>License<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="9">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">9.</span><span style="width: 14px; " class="inline-block"></span>Support<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -24px; " class="full-width" value="10">
<p style="text-indent: -24px; " class="paragraph_style_3"><span style="font-size: 12px; " class="Bullet">10.</span><span style="width: 7px; " class="inline-block"></span>References<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">1.0  Getting wolfSSL JNI Source Code<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">The most recent version of wolfSSL JNI can be downloaded from the wolfSSL website as a ZIP file from the <a title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download page</a>.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">2.0  Requirements<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">To compile and use this interface, users must have Java installed on the development machine.  Prior to compiling the JNI wrapper, the wolfSSL library must be compiled and installed in a location which can be found by the JNI wrapper. This release of the Java wrapper has been tested against wolfSSL 3.7.0.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The package utilizes the ant build system to make compilation, testing, and documentation easier and more streamlined.  As such, if users wish to use the existing ant build script, ant will need to be installed and available on the development machine.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">JUnit is used for unit tests.  JUnit will need to be installed on the development machine in order for unit tests to work.  Users can download JUnit from <a title="http://www.junit.org/" href="http://www.junit.org/">http://www.junit.org</a>.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">After downloading junit-x.x.jar and hamcrest-core-x.x.jar from the JUnit website, you may need to add them to your classpath.  For example, on Linux this would be similar to:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">$ export CLASSPATH=$CLASSPATH:/usr/share/java/junit-4.12.jar:/usr/share/java/hamcrest-core-1.3.jar<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">When running JUnit tests, this package will look for junit-4.12.jar and ant-junit4.jar at the following locations:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">$JUNIT_HOME/junit-4.12.jar<br/></p>
<p class="paragraph_style_5">$JUNIT_HOME/hamcrest-core-1.3.jar<br/></p>
<p class="paragraph_style_5">$JUNIT_HOME/ant/ant-junit4.jar<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Please set the $JUNIT_HOME environment variable to match your system where the above files are located, ie:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">$ export JUNIT_HOME=/usr/share/java<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">3.0  Package Design<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">The Java interface package has the following directory structure.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_6">&lt;package_root&gt;<br/></p>
<p class="paragraph_style_4">build.xml(ant build script)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/docs</span>(javadocs)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/examples</span>(examples)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/certs</span>(test certs/keys)<br/></p>
<p class="paragraph_style_4">java.sh(JNI gcc script)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/lib</span>(output directory for compiled JNI lib and JAR file)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/native</span>(native JNI code)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/src</span><br/></p>
<p class="paragraph_style_4"><span class="style_1">/java</span>(Java sources)<br/></p>
<p class="paragraph_style_4"><span class="style_1">/test</span>(test code)<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">4.0  Building<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">wolfSSL will need to be compiled and installed on the development machine using the following build options:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">$ cd wolfssl-3.7.0<br/></p>
<p class="paragraph_style_5">$ ./configure --enable-jni<br/></p>
<p class="paragraph_style_5">$ make<br/></p>
<p class="paragraph_style_5">$ sudo make install<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">To compile the JNI interface, run the following commands from the root package directory.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_2">./java.sh  </span>(compiles native JNI sources into shared library)<br/></p>
<p class="paragraph_style_4"><span class="style_2">ant </span>(compiles Java sources, javadocs, JNI headers, JAR, and runs available tests)<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The java.sh script tries to detect where Java is installed on your system, using the javaHome variable in java.sh to store this path. If your system has issues finding the Java installation path, manual edit of this variable may be necessary in java.sh.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_1">5.0  Cleanup<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">To clean the package, run the following commands from the root directory:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_2">ant clean</span>(cleans all Java sources and .JAR)<br/></p>
<p class="paragraph_style_4"><span class="style_2">ant cleanjni</span>(cleans native object files and shared library)<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_1">6.0  Examples<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">This interface includes an example server and client written in Java to provide developers with a simple usage example.  The example client and server are located in the &lt;package_root&gt;/examples directory.  Each is accompanied by a wrapper script.  The wrapper script should be used when running the programs to more easily set the classpath and library path options.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The examples can be run from the root package directory using:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">./examples/server.sh<br/></p>
<p class="paragraph_style_5">./examples/client.sh<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Each example provides several command line options which can be used to customize how the example(s) run.  Use the “-?” option to show available command line options:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_5">Java example server usage:<br/></p>
<p class="paragraph_style_5">-?Help, print this usage<br/></p>
<p class="paragraph_style_5">-p &lt;num&gt;Port to connect to, default 11111<br/></p>
<p class="paragraph_style_5">-v &lt;num&gt;SSL version [0-3], SSLv3(0) - TLS1.2(3)), default 3<br/></p>
<p class="paragraph_style_5">-l &lt;str&gt;Cipher list<br/></p>
<p class="paragraph_style_5">-c &lt;file&gt;Certificate file,default ../certs/client-cert.pem<br/></p>
<p class="paragraph_style_5">-k &lt;file&gt;Key file,default ../certs/client-key.pem<br/></p>
<p class="paragraph_style_5">-A &lt;file&gt;Certificate Authority file,default ../certs/client-cert.pem<br/></p>
<p class="paragraph_style_5">-dDisable peer checks<br/></p>
<p class="paragraph_style_5">-sUse pre shared keys<br/></p>
<p class="paragraph_style_5">-uUse UDP DTLS, add -v 2 for DTLSv1 (default), -v 3 for DTLSv1.2<br/></p>
<p class="paragraph_style_5">-iocbEnable test I/O callbacks<br/></p>
<p class="paragraph_style_5">-logtestEnable test logging callback<br/></p>
<p class="paragraph_style_5">-oPerform OCSP lookup on peer certificate<br/></p>
<p class="paragraph_style_5">-O &lt;url&gt;Perform OCSP lookup using &lt;url&gt; as responder<br/></p>
<p class="paragraph_style_5">-UAtomic User Record Layer Callbacks<br/></p>
<p class="paragraph_style_5">-PPublic Key Callbacks<br/></p>
<p class="paragraph_style_5">-mEnable CRL directory monitor<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The examples demonstrate usage of several things, including using custom I/O callbacks, a custom verify callback, DTLS cookie generation callback, Atomic Record callbacks, public key (ECC, RSA) callbacks, and PSK support.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Sources for the example client can be found in &lt;package_root&gt;/examples/Client.java and the example server in &lt;package_root&gt;/examples/Server.java.  Custom I/O callbacks can be found in MyRecvCallback.java and MySendCallback.java, with the I/O context found in MyIOContext.java.  The custom verify callback can be found in VerifyCallback.java.  Examples of atomic user record layer callbacks and public key callbacks are also included in the &lt;package_root&gt;/examples directory.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The verify callback currently returns 1 (failure), but does no processing of the peer certificate chain.  A real-world application would want to do any desired certificate verification processing before returning failure or success.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Currently DTLS usage requires custom I/O callbacks and DTLS cookie generation callback to be registered.  Examples of these can be found in Server.java and Client.java.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_1">7.0  API Documentation<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">The ant build system compiles up-to-date Javadocs when run.  To view the most current Javadocs for the package, open the following index file in a web browser.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">&lt;package_root&gt;/docs/index.html<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">or browse to the online version at:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><a title="http://www.wolfssl.com/documentation/wolfssl-jni-javadocs/index.html" href="http://www.wolfssl.com/documentation/wolfssl-jni-javadocs/index.html">http://www.wolfssl.com/documentation/wolfssl-jni-javadocs/index.html</a><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_1">8.0  License<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">Like wolfSSL (CyaSSL), this package is dual licensed under both the GPLv2 as well as a standard commercial license.  Full license details can be found on the <a title="License.html" href="License.html">wolfSSL Licensing page</a>.  The GPLv2 license header included in the wolfSSL JNI download package is copied below:<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4"> * Copyright (C) 2006-2015 wolfSSL Inc.<br/></p>
<p class="paragraph_style_4"> *<br/></p>
<p class="paragraph_style_4"> * This file is part of wolfSSL.<br/></p>
<p class="paragraph_style_4"> *<br/></p>
<p class="paragraph_style_4"> * wolfSSL is free software; you can redistribute it and/or modify<br/></p>
<p class="paragraph_style_4"> * it under the terms of the GNU General Public.start(); License as published by<br/></p>
<p class="paragraph_style_4"> * the Free Software Foundation; either version 2 of the License, or<br/></p>
<p class="paragraph_style_4"> * (at your option) any later version.<br/></p>
<p class="paragraph_style_4"> *<br/></p>
<p class="paragraph_style_4"> * wolfSSL is distributed in the hope that it will be useful,<br/></p>
<p class="paragraph_style_4"> * but WITHOUT ANY WARRANTY; without even the implied warranty of<br/></p>
<p class="paragraph_style_4"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br/></p>
<p class="paragraph_style_4"> * GNU General Public License for more details.<br/></p>
<p class="paragraph_style_4"> *<br/></p>
<p class="paragraph_style_4"> * You should have received a copy of the GNU General Public License<br/></p>
<p class="paragraph_style_4"> * along with this program; if not, write to the Free Software<br/></p>
<p class="paragraph_style_4"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_1">9.0  Support<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">Please send questions or comments to wolfSSL at <a title="mailto:support@wolfssl.com" href="https://www.wolfssl.com/cdn-cgi/l/email-protection#4b383e3b3b24393f0b3c24272d38382765282426"><span class="__cf_email__" data-cfemail="d6a5a3a6a6b9a4a296a1b9bab0a5a5baf8b5b9bb">[email&#160;protected]</span><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></a>.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">10.0  References<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">wolfSSL Product Page: <a title="https://wolfssl.com/wolfSSL/Products-wolfssl.html" href="Products-wolfssl.html">https://wolfssl.com/wolfSSL/Products-wolfssl.html</a><br/></p>
<p class="paragraph_style_2">wolfSSL Documentation: <a title="https://wolfssl.com/wolfSSL/Docs.html" href="Docs.html">https://wolfssl.com/wolfSSL/Docs.html</a><br/></p>
<p class="paragraph_style_2">wolfSSL Manual: <a title="https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html</a><br/></p>
<p class="paragraph_style_2"><br/></p>
</div>
</div>
</div>
<div id="id3" style="height: 26px; left: 193px; position: absolute; top: 122px; width: 268px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_268_26" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_7"><a class="class1" title="Docs.html" href="Docs.html">Docs</a> <span class="style_3">-&gt;</span> <span class="style_4">wolfSSL JNI Manual</span></p>
</div>
</div>
</div>
<div style="height: 1px; width: 698px;  height: 1px; left: 37px; position: absolute; top: 220px; width: 698px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 698px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 698px; "/>
</div>
</div>
<div style="height: 37px; width: 545px;  height: 37px; left: 191px; position: absolute; top: 80px; width: 545px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 545px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_2.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 545px; "/>
</div>
</div>
<div id="id4" style="height: 25px; left: 200px; position: absolute; top: 84px; width: 43px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_43_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class2" title="Home.html" href="Home.html">Home</a></p>
</div>
</div>
</div>
<div id="id5" style="height: 25px; left: 365px; position: absolute; top: 84px; width: 72px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_72_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class3" title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download</a></p>
</div>
</div>
</div>
<div id="id6" style="height: 25px; left: 439px; position: absolute; top: 84px; width: 59px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_59_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class4" title="License.html" href="License.html">License</a></p>
</div>
</div>
</div>
<div id="id7" style="height: 25px; left: 499px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class5" title="Blog/Blog.html" href="Blog/Blog.html">Blog</a></p>
</div>
</div>
</div>
<div id="id8" style="height: 25px; left: 589px; position: absolute; top: 84px; width: 80px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_80_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class6" title="Community.html" href="Community.html">Community</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 245px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_3.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 296px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_4.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 363px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_5.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 438px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_6.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 498px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_7.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 589px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_8.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id9" style="height: 25px; left: 671px; position: absolute; top: 84px; width: 61px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_61_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class7" title="Contact.html" href="Contact.html">Contact</a></p>
</div>
</div>
</div>
<div id="id10" style="height: 25px; left: 249px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class8" title="About.html" href="About.html">About</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 670px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_9.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id11" style="height: 25px; left: 298px; position: absolute; top: 84px; width: 63px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_63_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class9" title="Products.html" href="Products.html">Products</a></p>
</div>
</div>
</div>
<div id="id12" style="height: 25px; left: 549px; position: absolute; top: 84px; width: 41px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_41_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class10" title="Docs.html" href="Docs.html">Docs</a></p>
</div>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 545px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_10.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id13" style="height: 27px; left: 59px; position: absolute; top: 190px; width: 196px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_196_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class11" title="https://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf" href="https://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf">Download wolfSSL JNI Manual (PDF)</a></p>
</div>
</div>
</div>
<div style="height: 22px; width: 22px;  height: 22px; left: 33px; position: absolute; top: 191px; width: 22px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-jni-manual_files/PDF.png" alt="" style="border: none; height: 22px; width: 22px; "/>
</div>
<div style="height: 16px; width: 20px;  height: 16px; left: 706px; position: absolute; top: 51px; width: 20px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 20px; ">
<img src="Docs-wolfssl-jni-manual_files/shapeimage_11.png" alt="" style="height: 16px; left: 0px; position: absolute; top: 0px; width: 20px; "/>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 707px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-jni-manual_files/United%20Kingdom(Great%20Britain).png" alt="" style="border: none; height: 19px; width: 19px; "/>
</div>
<div id="id14" style="height: 23px; left: 328px; position: absolute; top: 48px; width: 258px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_258_23" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_11">Questions? +1 (425) 245-8247</p>
</div>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 685px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.jp/" title="http://www.wolfssl.jp"><img src="Docs-wolfssl-jni-manual_files/japan.png" alt="" style="border: none; height: 19px; width: 19px; "/></a>
</div>
<div id="id15" style="height: 28px; left: 593px; position: absolute; top: 44px; width: 119px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_119_28" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_12"><a class="class12" title="https://www.wolfssl.com/forums" href="https://www.wolfssl.com/forums">Support <span class="style_5">Forums</span></a></p>
</div>
</div>
</div>
<div style="height: 121px; width: 155px;  height: 121px; left: 32px; position: absolute; top: 5px; width: 155px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="Home.html" title="Home.html"><img src="Docs-wolfssl-jni-manual_files/wolfssl_logo.png" alt="" style="border: none; height: 121px; width: 156px; "/></a>
</div>
<div style="height: 3414px; line-height: 3414px; " class="spacer"> </div>
</div>
<div style="height: 100px; margin-left: 0px; position: relative; width: 770px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id16" style="height: 29px; left: 35px; position: absolute; top: 28px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_29" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_13">Copyright 2017 wolfSSL Inc.  All rights reserved.</p>
</div>
</div>
</div>
</div>
</div>
</div>
 <script type="text/javascript">/* <![CDATA[ */(function(d,s,a,i,j,r,l,m,t){try{l=d.getElementsByTagName('a');t=d.createElement('textarea');for(i=0;l.length-i;i++){try{a=l[i].href;s=a.indexOf('/cdn-cgi/l/email-protection');m=a.length;if(a&&s>-1&&m>28){j=28+s;s='';if(j<m){r='0x'+a.substr(j,2)|0;for(j+=2;j<m&&a.charAt(j)!='X';j+=2)s+='%'+('0'+('0x'+a.substr(j,2)^r).toString(16)).slice(-2);j++;s=decodeURIComponent(s)+a.substr(j,m-j)}t.innerHTML=s.replace(/</g,'&lt;').replace(/>/g,'&gt;');l[i].href='mailto:'+t.value}}catch(e){}}}catch(e){}})(document);/* ]]> */</script></body>

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-jni-manual.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:26:02 GMT -->
</html>
